/** \file FilterOctave.h
    \author belot.nicolas
	Handle filter octave
*/

#ifndef FILTEROCTAVE_H
#define FILTEROCTAVE_H 1

#include "Filter.h"

namespace libtrckr {

class FilterOctave : public Filter {
	/** \class libtrckr::FilterOctave
	\brief  handle filter octave
	Append the invert of the signal if it goes under 0...
	*/
	public:
	/**Constructor */
	FilterOctave();
	/**Copy Constructor */
	FilterOctave(const FilterOctave&);
	/**Destructor */
	~FilterOctave();
	/**Tune the Filter 
	\param conf \li \c 0 number of octave...(actually use 1 ;) )
	\li \c 1 gain/reduce of the create octave.
	*/
	void Tune(DynArray<int>);
	/**Do nothing */
	void Init();

	Buffer& Preview(Buffer&);
	double* Preview(double*,int);
	
	Buffer& Execution(Buffer&);
	double* Execution(double*,int);
	string HowToTune();
	private:
		double ratio;
		uint count;
};

}





#endif
